Процесс разработки
==================

Рассказав о фундаментальных концепциях Yii, мы опишем общий процесс создания веб-приложений с использованием
фреймворка. Процесс подразумевает, что анализ требований уже проведён, как и анализ устройства приложения.

   1. Создание структуры директорий. Утилита `yiic`, описанная в разделе
«[cоздание первого приложения](/doc/guide/quickstart.first-app)», может быть использована для того, чтобы ускорить этот процесс.

   2. Конфигурирование [приложения](/doc/guide/basics.application) путём модификации файла конфигурации приложения.
Этот этап также может потребовать написания некоторых компонентов приложения (например, компонента управления пользователями).

   3. Создание класса [модели](/doc/guide/basics.model) для каждого используемого типа данных.
   Для автоматической генерации всех необходимых моделей [Active Record](/doc/guide/database.ar)
   можно воспользоваться инструментом `Gii`, описанным в разделах
   «[создание первого приложения](/doc/guide/quickstart.first-app#implementing-crud-operations)»
   и «[автоматическая генерация кода](/doc/guide/topics.gii)».

   4. Создание класса [контроллера](/doc/guide/basics.controller) для каждого типа пользовательского запроса. Классификация
пользовательских запросов зависит от текущих требований. В общем случае, если класс модели используется пользователем, должен существовать
соответствующий класс контроллера. Утилита `Gii` также может автоматизировать этот процесс.

   5. Создание [действий](/doc/guide/basics.controller#action) и [представлений](/doc/guide/basics.view). Именно здесь и происходит
основная работа.

   6. Конфигурирование необходимых [фильтров](/doc/guide/basics.controller#filter) для действий в классах контроллеров.

   7. Создание [тем оформления](/doc/guide/topics.theming) при необходимости.

   8. Перевод сообщений в случае, когда требуется [локализация](/doc/guide/topics.i18n) приложения.

   9. Выявление данных и представлений, которые могут быть закэшированы, и применение соответствующих техник
[кэширования](/doc/guide/caching.overview).

   10. [Настройка производительности](/doc/guide/topics.performance) и развёртывание.

Для каждого из представленных этапов может потребоваться создание и применение тестов.